// QR码处理相关功能
const showQRCode = () => {
  try {
    // 获取当前页面URL和标题
    const currentUrl = window.location.href;
    const pageTitle = document.title;
    
    // 创建一个临时的div来生成二维码
    const tempDiv = document.createElement('div');
    tempDiv.style.display = 'none';
    document.body.appendChild(tempDiv);
    
    // 初始化QR码
    const qrcode = new QRCode(tempDiv, {
      text: currentUrl,
      width: 160,  // 稍微调小二维码尺寸
      height: 160,
      colorDark: "#000000",
      colorLight: "#ffffff",
      correctLevel: QRCode.CorrectLevel.H
    });
    
    // 等待二维码生成完成
    setTimeout(() => {
      // 获取二维码图片
      const qrImage = tempDiv.querySelector('img');
      
      // 创建canvas来合成图片
      const canvas = document.createElement('canvas');
      const ctx = canvas.getContext('2d');
      
      // 设置画布大小，增加内边距
      const padding = 30;  // 增加内边距
      canvas.width = 160 + (padding * 2);  // 二维码宽度 + 两边内边距
      canvas.height = 220 + (padding * 2);  // 二维码高度 + 文字区域 + 内边距
      
      // 填充白色背景
      ctx.fillStyle = '#ffffff';
      ctx.fillRect(0, 0, canvas.width, canvas.height);
      
      // 绘制二维码（考虑内边距）
      ctx.drawImage(qrImage, padding, padding);
      
      // 添加标题文本
      ctx.fillStyle = '#666666';  // 更柔和的文字颜色
      ctx.font = '13px -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif';  // 更现代的字体
      ctx.textAlign = 'center';
      
      // 文本自动换行
      const maxWidth = 180;
      const lineHeight = 18;  // 增加行高
      const words = pageTitle.split('');
      let line = '';
      let y = 160 + (padding * 1.5);  // 调整文字位置
      
      for (let i = 0; i < words.length; i++) {
        const testLine = line + words[i];
        const metrics = ctx.measureText(testLine);
        
        if (metrics.width > maxWidth && i > 0) {
          ctx.fillText(line, canvas.width / 2, y);
          line = words[i];
          y += lineHeight;
          
          // 如果超过两行，添加省略号
          if (y > canvas.height - padding) {
            line = line.slice(0, -3) + '...';
            ctx.fillText(line, canvas.width / 2, y);
            break;
          }
        } else {
          line = testLine;
        }
      }
      
      // 如果只有一行，直接绘制
      if (y === 160 + (padding * 1.5)) {
        ctx.fillText(line, canvas.width / 2, y);
      }
      
      // 转换为图片并下载
      const link = document.createElement('a');
      link.download = `${pageTitle.slice(0, 50)}_qrcode.png`;
      link.href = canvas.toDataURL('image/png');
      link.click();
      
      // 清理临时元素
      tempDiv.remove();
      
      // 显示提示
      utils.showNotification('二维码已下载');
      
    }, 100);
    
  } catch (error) {
    console.error('生成二维码失败:', error);
    utils.showNotification('生成二维码失败', true);
  }
};

// 导出到全局对象
window.markAnything = window.markAnything || {};
window.markAnything.qrcodeHandler = {
  showQRCode
}; 